/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.tags;

import javax.servlet.jsp.tagext.SimpleTagSupport;
import org.asportoonline.entities.Prodotto;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import org.asportoonline.entities.Cliente;

/**
 *
 * @author fe
 */
public class ElencoProdottiLocaleTag extends SimpleTagSupport {
    private List<Prodotto> prodotti;
    private Cliente cliente;

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public List<Prodotto> getProdotti() {
        return prodotti;
    }

    public void setProdotti(List<Prodotto> prodotti) {
        this.prodotti = prodotti;
    }
    
    @Override
    public void doTag() throws JspException {
        JspWriter out = getJspContext().getOut();
        List<Prodotto> lista = getProdotti();
        Prodotto p;        
        Cliente c = getCliente();
        Cliente proprietario;
        String num_prod_pren = "";
        String usertype = "viewer";
        
        if(c!=null && lista!=null && lista.size()>0) {
            proprietario = lista.get(0).getLocale().getProprietario();
            
            if(proprietario.getIdCliente() == c.getIdCliente()) {
                usertype = "proprietario";
            }
            else if(c.getTipo() == 0) {
                usertype = "cliente";
            }
        }
        
        for(int i=0; i<11; i++) {
            num_prod_pren += "<option value=\""+i+"\">"+i+"</option>";
        }
        
        try {
            
            if(lista==null) {   
                out.print("<p>Nessun prodotto registrato!!</p>");
            }
            else {
                if(usertype.equals("cliente")) {
                    out.print("<form method=\"post\" action=\"MainController?q=prenotation_second_step\">");
                    out.print("<input type=\"hidden\" name=\"number_products\" value=\""+lista.size()+"\">");
                    out.print("<input type=\"hidden\" name=\"id_locale\" value=\""+lista.get(0).getLocale().getIdLocale()+"\">");

                    out.print("<div class=\"miniMenuPrenotazione\">"
                            + "    <span>Seleziona le quantit&agrave; per ogni prodotto, quindi clicca su <input type=\"submit\" value=\"PRENOTA\"></span>"
                            + "</div>");

                }
                
//                out.print("<table><tr>"
//                        + "<th>Nome</th>"
//                        + "<th>Categoria</th>"
//                        + "<th>Prezzo</th>"
//                        + "<th>Descrizione</th>"
//                        + "<th>Immagine</th>");
//                
//                if(usertype.equals("proprietario") || usertype.equals("cliente")) {
//                    out.print("<th></th>");
//                }
//                
//                out.print("</tr>");
                out.flush();
                
                for(int i=0; i<lista.size(); i++) {
                    p = lista.get(i);
                    
//                    out.print("<tr>"
//                            + "<td>" + p.getNome() + "</td>"
//                            + "<td>" + p.getCategoria().getNome() + "</td>"
//                            + "<td>" + p.getPrezzo() + "</td>"
//                            + "<td>" + p.getDescrizione() + "</td>"
//                            + "<td><img src=\"img/" + p.getUrlimmagine() + "\" alt=\"prodotto_img\" height=\"20\" width=\"20\" /></td>");
//                    
//                    if(usertype.equals("proprietario")) {
//                        out.print("<td><a href=\"MainController?q=fetch_product_details_action&AMP;ret=modify_product&AMP;idprodotto="+p.getIdProdotto()+"\">Modifica</a></td>");
//                    }
//                    else if(usertype.equals("cliente")) {
//                        out.print("<td>"
//                                + "<input type=\"hidden\" name=\"id_prodotto_"+i+"\" value=\""+p.getIdProdotto()+"\">"
//                                + "<select name=\"num_prodotto_"+i+"\">"+num_prod_pren+"</select>"
//                                + "</td>");
//                    }
//                     
//                    out.print("</tr>");
                    
                      out.print("<div class=\"datiProdotto\">\n"
                              + "    <div class=\"dettagliProdotto\">\n"
                              + "        <div class=\"logoL\">\n"
                              + "            <img src=\"img/" + p.getUrlimmagine() + "\" alt=\"immagine " + p.getNome() + "\"/>\n"
                              + "        </div>\n"
                              + "        <h6 style=\"text-align:center\">" + p.getNome());
                              if(usertype.equals("proprietario")) {
                      out.print(" - <a href=\"MainController?q=fetch_product_details_action&AMP;ret=modify_product&AMP;idprodotto="+p.getIdProdotto()+"\">Modifica prodotto</a>\n");
                      }
                      out.print("</h6>\n"
                              + "        <div class=\"listaDettagli\">\n"
                              + "            <ul>\n"
                              + "                <li><b>Categoria</b></li>\n"
                              + "                <li>" + p.getCategoria().getNome() + "</li>\n"
                              + "                <li><b>Prezzo</b></li>\n"
                              + "                <li>" + p.getPrezzo() + " &euro;</li>\n"
                              + "            </ul>\n"
                              + "        </div>\n"
                              + "        <div class=\"listaDettagli\" style=\"float:right\">\n"
                              + "            <ul>\n");
                              
                      if(usertype.equals("cliente")) {
                      out.print("                <li><b>Quantit&agrave;</b></li>\n"
                              + "                <input type=\"hidden\" name=\"id_prodotto_"+i+"\" value=\""+p.getIdProdotto()+"\" />"
                              + "                <li><select name=\"num_prodotto_"+i+"\">"+num_prod_pren+"</select></li>\n"
                              + "                <br />"
                              + "                <li></li>\n");
                      }
                      out.print("                <br />\n"
	                      + "            </ul>\n"
                              + "        </div>\n"
                              + "        <div class=\"listaDettagli\" style=\"width:375px\">\n"
                              + "            <ul>\n"
                              + "              	 <hr />\n"
                              + "                <li><b>Descrizione</b></li>\n"
                              + "                <li>" + p.getDescrizione() + "</li>\n"
                              + "            </ul>\n"
                              + "        </div>\n"
                              + "    </div>\n"
                              + "</div>\n");

                    
                }
                
//                if(usertype.equals("cliente")) {
//                    out.print("<tr><td></td><td></td><td></td><td></td><td></td>"
//                            + "<td><input type=\"submit\" value=\"PRENOTA\"></td>"
//                            + "</tr>");
//                }
                
                if(usertype.equals("cliente")) {
                    out.print("<div class=\"miniMenuPrenotazione\">"
                            + "    <span>Seleziona le quantit&agrave; per ogni prodotto, quindi clicca su <input type=\"submit\" value=\"PRENOTA\"></span>"
                            + "</div>");
                }
                
//                out.print("</table>");
//                out.print("</form>");
                out.flush();                
            }
        } catch (java.io.IOException ex) {
            throw new JspException("Error in ElencoProdottiLocaleTag tag", ex);
        }
    }    
}
